Linux控制台输出多种样式彩色字符及原理解析 您所在的位置:网站首页 linux 颜色输出 Linux控制台输出多种样式彩色字符及原理解析

Linux控制台输出多种样式彩色字符及原理解析

2024-07-03 07:53| 来源: 网络整理| 查看: 265

1. 前言

之前在做MIT6.824的实验的时候,有助教资料在说明如何输出彩色的字符来让日志更加清晰。所以对Linux控制台如何输出彩色字符以及它的原理产生了兴趣,学习了之后在这里记录一下。

2. 原理

Linux控制台输出彩色字符的原理是通过ANSI转义码来实现的。ANSI转义码是一种控制字符,用于控制文本终端的行为。包括但不限于控制光标位置、颜色、清屏等。

下面这是一段输出蓝色字符的控制台代码:

echo -e "\033[34mHello\033[0m"

在vscode的终端显示结果如下: 请添加图片描述

下面对这段代码逐个进行解析:

-e:表示开启转义字符的解析,如果不加这个参数,\033会被当做普通字符输出。\033:表示转义字符的开始。在ASCII字符集中,十进制的33代表了Escape字符(也可以写为\033或\x1B),它通常用于表示控制序列的开始。[34m:表示设置颜色。34代表蓝色,m表示设置颜色的转义序列的结束。[0m:表示重置为默认设置。0代表默认设置,m表示设置颜色的转义序列的结束。如果不设置为默认设置,后续的字符都会被设置为蓝色。 3. 转义代码

主要与输出字符格式相关的转义代码的格式如下,可以单独使用也可以利用;来混合使用:

\033[显示方式;前景色;背景色m

下面是一些常用的转义代码:

1. 显示方式

代码及对应显示方式如下:

0:所有属性关闭,恢复到默认值。1:粗体或者高亮。2:弱化(低亮)。(不是所有终端都支持)3:斜体。(不是所有终端都支持)4:下划线。5,6:闪烁。(不是所有终端都支持)7:反显,即前景色和背景色交换。8:隐藏字符。9:删除线。(不是所有终端都支持)10:将文本的前景色设置为默认颜色。21:双下划线。(不是所有终端都支持)

在vscode的终端显示结果如下:

请添加图片描述

2. 前景色

代码及对应颜色如下:

30:黑色。31:红色。32:绿色。33:黄色。34:蓝色。35:洋红。36:青色。37:白色。

在vscode的终端显示结果如下(注意37号白色被终端自动修改了以能够显示清楚): 请添加图片描述

而38号前景色是用于设置前景色的其他模式,包括两种:

使用 ANSI 256 色模式设置前景色,例如:\033[38;5;196m。这里的5表示使用 ANSI 256 色模式,196表示使用ANSI 256 色模式中的第 196 种颜色使用 TrueColor 模式设置前景色,例如:\033[38;2;255;0;0m。这里的2表示使用 TrueColor 模式,255;0;0表示RGB颜色值

39号表示重置前景色为默认颜色。

3. 背景色

代码及对应颜色如下:

40:黑色。41:红色。42:绿色。43:黄色。44:蓝色。45:洋红。46:青色。47:白色。

在vscode的终端显示结果如下(注意47号白色被终端自动修改了以能够显示清楚):

请添加图片描述

同样的,48号背景色是用于设置背景色的其他模式,包括使用 ANSI 256 色模式设置背景色和使用 TrueColor 模式设置背景色。 49号表示重置背景色为默认颜色。

4. 其他

还有一些其他比较有意思的转义代码,不过格式就不是\033[显示方式;前景色;背景色m了,如下:

\033[n*A :光标上移n行\033[nB:光标下移n行\033[nC:光标右移n行\033[nD:光标左移n行\033[y;xH :设置光标位置\033[2J :清屏\033[K:清除从光标到行尾的内容\033[s:保存光标位置\033[u:恢复光标位置\033[?25l:隐藏光标\033[?25h:显示光标 参考资料 Linux 命令行输出不同颜色的文本Adding colors to your motd?


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有